// 解析动漫信息的脚本
const fs = require('fs');
const https = require('https');

// 目标URL - 豆瓣电影搜索
const url = 'https://search.douban.com/movie/subject_search?search_text=为美好世界&cat=1002&sort=score';

// 解析动漫信息
function parseAnimeData(html) {
  const animeList = [];
  
  try {
    // 尝试从window.__DATA__对象中提取数据
    // 查找window.__DATA__部分
    const dataRegex = /window\.__DATA__\s*=\s*(\{.*?\});/;
    const dataMatch = html.match(dataRegex);
    
    if (dataMatch) {
      // 解析JSON数据
      const jsonData = JSON.parse(dataMatch[1]);
      
      // 检查是否有items数组
      if (jsonData.items && Array.isArray(jsonData.items)) {
        // 遍历每个项目
        jsonData.items.forEach((item, index) => {
          // 只处理search_subject类型的项目
          if (item.tpl_name === 'search_subject') {
            // 提取评分信息
            let rating = '暂无评分';
            if (item.rating && item.rating.value > 0) {
              rating = item.rating.value.toString();
            }
            
            // 提取标签信息
            let status = '';
            if (item.labels && Array.isArray(item.labels)) {
              status = item.labels.map(label => label.text).join('、');
            }
            
            // 提取年份信息
            let year = '';
            const yearMatch = item.title.match(/\((\d{4})\)/);
            if (yearMatch) {
              year = yearMatch[1];
            }
            
            // 添加到动漫列表
            animeList.push({
              id: item.id.toString(),
              title: item.title.replace(/\s*\(\d{4}\)$/, ''), // 移除年份
              link: item.url,
              imgUrl: item.cover_url,
              popularity: item.rating ? item.rating.count.toString() : '0',
              status: status || '未知',
              date: year,
              rating: item.rating ? item.rating.value : 0, // 评分
              rating_star: item.rating ? item.rating.star_count : 0, // 星级
              abstract: item.abstract || '', // 摘要
              actors: item.abstract_2 || '', // 演员/导演信息
              original_title: item.title, // 原始标题（包含年份）
              // labels: item.labels ? item.labels.map(label => ({ text: label.text, color: label.color })) : [] // 完整标签信息
            });
          }
        });
      }
    }
    
    // 过滤结果，只保留abstract包含"动画"的条目
    const filteredAnimeList = animeList.filter(anime => 
      anime.abstract && anime.abstract.includes('动画')
    );
    
    return filteredAnimeList;
  } catch (error) {
    console.error('解析数据结构时出错:', error);
    return animeList;
  }
}

// 发送HTTP请求获取数据
function fetchAnimeData() {
  console.log(`正在请求URL: ${url}`);
  
  // 设置请求选项，添加Cookie
  const options = {
    headers: {
      'Cookie': 'bid=DEV0FOe_fVk; ll="108296"; ap_v=0,6.0; dbcl2="231569352:B0mtm7Sgaqk"; ck=Tg5X; push_noty_num=0; push_doumail_num=0; frodotk_db="1281e4474455f9433785acd5cd01ebc9"'
    }
  };
  
  https.get(url, options, (res) => {
    let data = '';
    
    // 接收数据
    res.on('data', (chunk) => {
      data += chunk;
    });
    
    // 请求完成后处理数据
    res.on('end', () => {
      try {
        // 解析动漫信息
        const animeData = parseAnimeData(data);
        
        // 输出为JSON格式
        const jsonResult = JSON.stringify(animeData, null, 2);
        
        // 将结果写入文件
        fs.writeFileSync('d:\\trae-Project\\searchAnime\\anime_data.json', jsonResult, 'utf8');
        
        console.log('动漫信息解析完成！已保存到 anime_data.json 文件。');
        console.log(`共解析到 ${animeData.length} 个动漫条目。`);
      } catch (error) {
        console.error('解析数据时出错:', error);
      }
    });
  }).on('error', (error) => {
    console.error('请求URL时出错:', error);
  });
}

// 执行请求
fetchAnimeData();